# TODO 字符串中常用的方法介绍,并注意:记住，Python 中的字符串是不可变的，这意味着这些方法并不会改变原始的字符串，而是返回一个新的字符串
# 注意，len()实际上不是字符串的方法，而是Python的内置函数。但它经常用于获取字符串的长度，所以我在这里列出。
s = 'Hello, world!'
print(len(s))  # 输出：13

str = " Hello Flink "
# 1、字符串中字母大小写转化:可以使用lower()方法将字符串转换为小写字母，使用upper()方法将字符串转换为大写字母。以下是一个转换大小写字母的示例：
# 注意，upper()、upper() 函数不会修改原字符串，而是返回一个新字符串。
print(str.lower())  # hello flink
print(str.upper())  # HELLO FLINK

s = 'hello, world!'
# capitalize()：返回一个新的字符串，其中原始字符串的第一个字符被转换为大写，其余字符转为小写。注意，capitalize()函数不会修改原字符串，而是返回一个新字符串。例如：
print(s.capitalize())  # 输出：'Hello, world!'

# title()：返回一个新的字符串，其中原始字符串中每个单词的第一个字符都被转换为大写。例如：
print(" title() ---- ")
s = 'hello, world!'
print(s.title())  # 输出：'Hello, World!'

# 2、 可以使用strip()方法删除字符串开头和结尾的空格。以下是一个删除空格的示例
print(" strip() ---- ")
print(str.strip())  # Hello Flink
# 注意，strip()函数不会修改原字符串，而是返回一个新字符串。如果你想删除开头的空格，可以使用lstrip()，如果你想删除结尾的空格，可以使用rstrip()。
print(" lstrip() ---- ")
print(str.lstrip())  # Hello Flink
print(" rstrip ---- ")
print(str.rstrip())  # Hello Flink

# 3、split()：根据指定的分隔符将字符串分割成多个部分，并返回这些部分组成的列表。
# 如果你调用 split() 方法并且不提供任何参数，那么它会默认使用空格作为分隔符。这包括空格、换行(\n)和制表符(\t)。
s = 'Hello world! This is a test.'
words = s.split()
print(words)  # 输出：['Hello', 'world!', 'This', 'is', 'a', 'test.']

s = 'Hello, World!'
words = s.split(',')  # 使用逗号作为分隔符
print(words)  # 输出：['Hello', ' World!']

# 4、join()：使用指定的字符串将列表中的元素连接起来，形成一个新的字符串。例如：
print(' '.join(words))  # 输出：'Hello world!' ,这里是指定了使用空格连接
# join() 是一个字符串方法，它将列表（或任何可迭代的）中的元素连接起来，形成一个新的字符串。这些元素会用调用 join() 的字符串来连接。这听起来可能有些复杂，所以让我们看一个例子：
words = ['Hello', 'world!']
# 你也可以使用非空格字符串作为连接符，例如：
words = ['Hello', 'world!']
s = '-'.join(words)
print(s)  # 输出：'Hello-world!'
# 注意，元素列表中的每个元素都必须是字符串。如果列表中包含非字符串元素，如整数或浮点数，你需要先将它们转换为字符串，然后才能使用 join() 方法。

# 5、find()：返回子串在字符串中首次出现的位置，如果字符串中没有这个子串，则返回-1。注意，find()函数的参数是你要查找的子串。它返回子串在字符串中的起始位置，如果子串不存在，则返回-1。 例如：
s = 'Hello, world!'
print(s.find('world'))  # 输出：7
print(s.find('Python'))  # 输出：-1

# 6、replace()：返回一个新的字符串，其中原始字符串中的某个子串都被另一个子串替换。注意，replace()函数有两个参数：第一个参数是你要替换的子串，第二个参数是你要替换成的子串。它返回替换后的新字符串。 例如：
s = 'Hello, world!'
print(s.replace('world', 'Python'))  # 输出：'Hello, Python!'

# 7、startswith()：检查字符串是否以特定子串开始，如果是，返回 True，否则返回 False。例如：
s = 'Hello, world!'
print(s.startswith('Hello'))  # 输出：True
print(s.startswith('world'))  # 输出：False

# endswith()：检查字符串是否以特定子串结束，如果是，返回 True，否则返回 False。例如：
s = 'Hello, world!'
print(s.endswith('world!'))  # 输出：True
print(s.endswith('Hello'))  # 输出：False

